Eye diagrams are a conventional format for representing parametric information about signals, and especially digital signals. Various prior art eye diagram testers are known, but we shall call the technique described in xe2x80x9cMETHOD AND APPARATUS FOR PERFORMING EYE DIAGRAM MEASUREMENTSxe2x80x9d, as well as the preferred method to be disclosed herein (and any corresponding circuit apparatus), an Eye Diagram Analyzer, or EDA for short.
A modern eye diagram for a digital signal is not so much a trace formed continuously in the time domain, as it is an xe2x80x9ceyexe2x80x9d shape composed of closely spaced points (displayed dots, or illuminated pixels) representing many individual measurement samples taken upon separate instances of a signal occurring on a channel of interest, and which were then stored in a memory. Each measurement sample contributes to a displayed dot. The eye shape appears continuous because the collection of dots is rather dense, owing to the large number of times that the signal is sampled. Unlike a true continuous technique, however, there may be detached dots that are separated from the main body of the eye shape. A further difference with the continuous analog technique is that rare or infrequently occurring events, once sampled, do not appear faint in the display or disappear with the persistence of the CRT""s phosphor. This latter difference is often quite an advantage, since it is often the case that such otherwise xe2x80x9chard to seexe2x80x9d features of the trace are very much of interest.
In any event, the vertical axis is voltage, and the horizontal axis represents the differences in time (i.e., various offsets) between some reference event and the locations for the measurement samples. The reference event is generally an edge of a clock signal in the system under test, represents directly or through some fixed delay the expected point in time when the value of an applied data signal would be captured by some receiving circuit in an SUT (System Under Test), and is derived from an application of the SUT""s clock to the Eye Diagram Analyzer. The time axis will generally have enough length to depict one complete eye-shape (cycle of a SUT signal) centered about the reference, with sometimes perhaps several additional eyes (cycles) before and after.
Different (X, Y) regions within a (sample) space containing an eye diagram represent different combinations of time and voltage. Assume that the eye diagram is composed of a number of pixels, and temporarily assume that the resolution is such that each different (X, Y) pixel position can represent a different combination of time and voltage (and vice versa), which combinations of time and voltage we shall term xe2x80x9cmeasurement points.xe2x80x9d What the Eye Diagram Analyzer measures is the number of times, out of a counted number of clock cycles, that the signal on the channel being monitored passed through a selected measurement point. Then another measurement point is selected, and the process repeated until there are enough measurement points for all the pixels needed for the display. Points along the visible eye diagram trace describe something about those (time, voltage) combinations that were observed to actually occur in the data signal under test. The value of a (time, voltage) combination is represented by its location, but the color or intensity of the measured result is determined in a way that assists in appreciating the meaning of the measured data. The range over which the measurement points are varied is called a xe2x80x9csample spacexe2x80x9d and is defined during a measurement set-up operation. And in reality, we define the sample space and the resolution for neighboring measurement points first, start the measurement and then let the analyzer figure out later how to ascribe values to the pixels of the display. The xe2x80x9cdisplayxe2x80x9d is, of course, an arbitrary graphic output device such as a printer or an X Window of some as yet unknown size in a window manager (e.g., X11) for a computer operating system. (A one-to-one correspondence between display pixels and measurement points is not required. It will be appreciated that it is conventional for display systems, such as X Windows, to figure out how to ascribe values to the pixels for an image when the correspondence between the display""s pixel locations and the measurements that are the original image description is not one-to-one.)
A modern eye diagram trace itself is thus not a single time domain waveform (think: xe2x80x98single valued functionxe2x80x99), but is instead equivalent to an accumulation of many such instances; it can present multiple voltage (Y axis) values for a given time value (X axis). So, for example, the upper left-hand region of an eye might represent the combination of an adequate logical one at an adequately early time relative to the SUT""s clock signal, and an eye diagram whose trace passes robustly through that region indicates to us that a signal of interest is generally achieving a proper onset of voltage at a proper time. Furthermore, we note that there are also other regions, say, near the center of an eye, that are not ordinarily transited by the trace, and which if that were indeed to happen, would presumably be an indication of trouble. Thickening of the traces is indicative of jitter, a rounding of a corner is indicative of slow transitions, and so on. An eye diagram by itself cannot reveal in the time domain which isolated instance (cycle) of the data signal caused such an exception, as other types of measurements might, but it does provide timely and valid information about signal integrity within a system as it operates. In particular, by incorporating various rules for determining the intensity and color of the displayed pixels of the eye diagram trace (e.g., very long, perhaps xe2x80x9cinfinitexe2x80x9d, persistence) the eye diagram presents readily seen evidence of infrequently occurring failures or other hard to spot conditions.
The EDA of the incorporated xe2x80x9cMETHOD AND APPARATUS FOR PERFORMING EYE DIAGRAM MEASUREMENTSxe2x80x9d operates by applying the clock signal from the SUT to a comparator circuit whose output is then delayed by a fixed amount, say about a half cycle, or some integral multiple thereof. The delayed clock comparison is then the reference mentioned above, and it used by determining when individually threshold-compared and then delayed data signals (the SUT data channels) are sampled.
This sampling of the individually threshold-compared and then delayed data signals is actually performed twice in rapid succession, a very brief (but selectable) amount of time apart. If these two successive samples are different, then the input signal transitioned through the voltage region of interest, and we call this a hit. This is the manner of sampling that accomplishes the taking of the (time, voltage) pairs that are the basic data of the eye diagram measurement, and it is an alternative to digitizing with a conventional Analog-to-Digital Converter (ADC). We use it because it works at frequencies that are impractical for ADCs.
Different sampling voltages are obtained by varying the comparison thresholds for the data signals. Different times are obtained by varying the amount of delay in the data channel path, while leaving the clock data signal path essentially fixed. Skew between data channels is removed by introducing corresponding increases or decreases in the individual delays of the data channels.
An advantage of this technique is that, once skew is calibrated out, it allows the delay and threshold comparison for each data channel to vary as needed to complete the measurement. That is, the EDA will dwell on a measurement point for say, a specified number of clocks, or say, until some other condition is met, before moving on to the next measurement point. It sometimes happens that the rate of progress among the channels is not all the same. This particular technique allows each channel to be measured at a different measurement point, simultaneously with the other channels at their measurement points, if that is appropriate. That is, each data channel can have its own delay and threshold voltage, independent of those for the other channels. This speeds up the measurement by allowing xe2x80x9coverlap,xe2x80x9d as it were, compared to requiring that all channels be measuring for the same (time, voltage) pair. Thus, each channel""s measurement is completed as soon as possible, without slaving intermediate progress for the entire process [start the next (time, voltage) pair] to the channel with the slowest measurement process. To be sure, the entire overall measurement will not be complete until that slowest channel is also completed, but at least the results of the other channels are visible at the earliest possible time, and that may have a bearing on what the operator decides to do. He may determine from an inspection of other results that it is not necessary to wait (perhaps in the minutes, or more) for the measurement on the final channel to be completed.
There is, however, a disadvantage to this technique as set out in xe2x80x9cMETHOD AND APPARATUS FOR PERFORMING EYE DIAGRAM MEASUREMENTSxe2x80x9d. The delay lines used are each a tapped series of non-inverting buffers. The input is applied to the start of the tapped series, and the delayed output is taken at the location in the series selected by the tap. It is important to remember that each buffer in the tapped sequence has a frequency response (finite rise and fall times), and that the combined effect for large values of delay (over a thousand buffers in series) is significant. The effective rise and fall time for the stage of delay at the final tap is considerably less than that for any single buffer in the sequence.
Here is why that is important. As will be explained in due course with reference to FIG. 1, consider a (high speed digital) data channel whose signal has rise and fall times that are a significant fraction (say a third, or even more) of the pulse width of that signal. (At, say, ten megahertz we would be justified in considering such a digital signal quite defective. But as for signals in the gigahertz range, we often won""t have the luxury of being so fussy, and will have to find a way to cope with signals that are significantly less than perfect. Read on.) The rise and fall time imperfections mean that the width of that data signal at the level corresponding to the threshold varies with the level of the threshold (which would not happen if the data signal had zero rise and fall times and perfectly flat tops and bottoms). Accordingly, the length of the output pulse produced by the threshold comparison varies according to the threshold. For thresholds near (but not above) the upper excursion of the signal the output pulse is xe2x80x9cshort.xe2x80x9d Perhaps very short. Even too short. For if it gets short enough it will not make it through the tapped delay line, but will eventually be xe2x80x9cswallowed,xe2x80x9d instead. What comes out of the end of the delay line is a steady level (incorrectly) indicating xe2x80x9cno comparison occurred.xe2x80x9d For thresholds close to (but not below) the lower excursion the comparison pulse width is xe2x80x9clong.xe2x80x9d However, it must be remembered that it is still a periodic signal, which means that when it gets xe2x80x9clongxe2x80x9d it must also contain a xe2x80x9cshortxe2x80x9d pulse in the other direction corresponding to a brief period of no comparison. Insufficient bandwidth in the delay line can swallow that necessary short separation, so that xe2x80x9clongxe2x80x9d turns into xe2x80x9ctoo long!xe2x80x9d That is, the delayed comparison is no longer responsive to the excursions in the data signal, which is an indication that no change in comparison occurred. Each case (high thresholds, low thresholds) upsets the (delayed) data channel comparison values clocked into the difference detection circuitry (recall the two samples in rapid succession mentioned above, and which if different, indicate a hit). The result is no difference between those samples taken in rapid succession (implying the signal did not passed through the corresponding threshold voltage), which in turn means that for increasing values of data channel delay the EDA exhibits a decreasing sensitivity to both upper and lower thresholds when observing high speed imperfect signals.
So, for example, an eye diagram of several consecutive cycles for such a signal would be made by sweeping the delay from greatest (on the left side of the trace) to least (on the right side). At each step in the delay the amplitude threshold would be swept through its range. The dynamically varying voltage response squashes the trace at locations having the greater delay (on the left, since increased delay is needed in the data path to see earlier times along the time axis). See, in due course, FIG. 2. In the words of one of the inventors: xe2x80x9cThe resulting eye diagram measurement looks more like a sick worm than an electrical signal.xe2x80x9d It seems our Eye Diagram Analyzer has turned into a Worm Diagram Generator.
We can""t allow rise time imperfections in high speed data signals to generate diagrams of sick worms in our Eye Diagram Analyzer. What to do?
A solution to the sick worm phenomenon of delay induced apparent amplitude desensitization in an Eye Diagram Analyzer is to alter the measurement technique to avoid the need for any substantial delay in the path of the data channel threshold comparison signals. There are two similar techniques by which this may be accomplished. In the first of these techniques, only enough delay will be inserted in the data channels to produce the relative adjustments needed to compensate for skew between the data channels, as determined by a calibration operation. In this first technique it is these de-skewed, but otherwise un-delayed, data threshold comparison signals that are, in rapid succession, clocked into the latches whose difference registers a hit at a given (time, voltage) pair. The clock path delay is then varied from a minimal value to a sufficiently large value capable of spanning a desired the number of eye diagram cycles. That is, the delay in the de-skewed data channel paths will remain constant, and different (time, voltage) pairs needed for eye diagram production are thus produced by stepping the amount of delay in the clock path. This first technique provides good bandwidth for the data channel comparison signal, and also allows the entire range of relative delay that can be swept with the variable clock path delay. In the second technique, the needed amounts of de-skew delay found by the calibration operation are noted, and then the actual delays in the data path are set back to zero. The clock path delay is swept as in the first technique. This completely maximizes the available bandwidth for the data channel comparison signals, but can be expected to somewhat limit the range of relative delay that can be swept with the variable clock path delay. The de-skewing operation is then performed in post-processing that produces the eye diagram after the measurement is complete. The second technique is presently the preferred one. In either technique, the short width of transitions in the data threshold comparison signals that are associated with threshold values near the extremes of data signal excursion are no longer swallowed by the finite bandwidth of a long delay line, since the delay lines in the data channel paths now either introduce only just enough delay to compensate for skew (and those amounts are very short), or, do not introduce any extra delay at all. The threshold comparison for the clock signal is set at a suitable value at or near the midrange of clock values, and thereafter is not changed. The output pulse from the clock threshold comparator may not have the full width of the clock pulse, but it nevertheless remains robust and constant as it makes its way unhindered through even the full length of the variable tapped delay line within the clock path.